import { http } from '../http';
import type { ApiResponse } from '~/api/types/http';
import type { UserProfile, UpdateUserProfileParams } from '~/api/types/user';

/**
 * 用户API组合函数
 */
export const useUserApi = () => {
  /**
   * 获取用户资料
   * @returns useFetch 响应对象，包含 data、pending、error 等
   */
  const getUserProfile = () => http.get<UserProfile>('/user/profile');

  /**
   * 更新用户资料
   * @param params 更新参数
   * @returns useFetch 响应对象
   */
  const updateUserProfile = (params: UpdateUserProfileParams) =>
    http.put<UserProfile>('/user/profile', params);

  /**
   * 修改密码
   * @param oldPassword 旧密码
   * @param newPassword 新密码
   * @returns useFetch 响应对象
   */
  const changePassword = (oldPassword: string, newPassword: string) =>
    http.post('/user/change-password', { oldPassword, newPassword });

  /**
   * 获取用户统计信息
   * @returns useFetch 响应对象
   */
  const getUserStats = () => http.get('/user/stats');

  return {
    getUserProfile,
    updateUserProfile,
    changePassword,
    getUserStats,
  };
};
